前情提要...
這是【開心碼農養成記】的第一篇文章,所以根本沒有前情提要啊!
雖然主要是做Help Desk,對程式設計大概就只知道個大概,差不多就是我不懂他、他不懂我的那種程度,不過正所謂學無止盡,沒有打算成為專業碼農的我最近開始用VS Code練習Python了。
一開始光是VS code的python環境還有弄那個pip install就有點頭疼...還好有前任大神Google和現任大神Chat GPT兩位大神加持,才總算可以搞東搞西的。
目前應該算是結束新手任務的'Hello World'和各種基本指令砍木人階段,所以不知天高地厚的小萌新就走出村莊來挑戰下新手魔物吧!
本文開始:
作為一個多功能的資訊人員,剛好之前一直找不到好用的YT的MP3下載器,大部分網頁版免安裝下載器的都會有一堆跳出視窗,不然就是O情,色X廣告...
於是就在Google搜尋了下關鍵字就會找到網路上的教學範例了!
而其中高達8成以上都是用Pytube來做,所以就找個幾個教學網站來照做了。
**But...**仔細看了幾個Pytube網站教學內容後就發現了一個問題,那就是絕大部分的教學都是把YT網址直接埋在程式碼裡面,這樣得要每想下載一個就得要編輯一次程式碼了!
(還是有什麼特殊原因一定要這樣做???)
不過考量到之後如果是匯出成.exe執行檔使用的話,這樣好像不很OK耶!
所以在這次的練習中做得比較大的變動就是把網址變成可以"輸入"的形式了!
i = str(input('請輸入編號:'))
另外還有個問題就是,在清單下載時原本程式是把YT影片名稱當作檔名的,但執行後就會發現,中文標題常常打得非常長,像在做網拍關鍵字一樣,然後......就報錯了!!!
所以為了避免檔名過長的情況發生,只能增加變數,以流水號來取代檔名。
但因為還是個剛砍完木人的小廢柴,雖然有是過想要一行程式碼來解決,但失敗了...所以只能用蠢蠢的幾個變數來轉換......
大概是這樣:
k = k +1 #變數K執行每一次迴圈就+1
k2 = str(k) #把K轉為文字型態
k3 = '.mp3' #K3變數用來設定為副檔名.mp3
k4 = k2+k3 #把K2和K3的值串在一起
目前是以流水號取代所有的檔名,或許下次再調整的時候就是讓檔案更容易被識別是什麼了!
參考資料:
Pytube
連結:https://pytube.io/en/latest/
程式碼:
>>> from pytube import YouTube
>>> YouTube('https://youtu.be/9bZkp7q19f0').streams.first().download()
>>> yt = YouTube('http://youtube.com/watch?v=9bZkp7q19f0')
>>> yt.streams
... .filter(progressive=True, file_extension='mp4')
... .order_by('resolution')
... .desc()
... .first()
... .download()